package test;

import org.junit.Test;

 
import exepciones.TenisExepcion;

import tenis.Partido;
import tennis.IJugable;
import tennis.IJugador;

public class testGustavoG extends BaseTest {

	@Test
	public void testPartidoSexoDistno() {
		IJugador jugador1 = vestuario.getJugadorMasculino();
		IJugador jugador2 = vestuario.getJugadorFemenino();
		jugador1.setNombre("Chela");
		jugador2.setNombre("Nadal");

		IJugable partido= new Partido();
		
		try {
			partido.iniciarPartido(jugador1, jugador2);
			assertTrue("El sexo de los jugadores es igual", true);
		
		} catch (TenisExepcion e) {
			assertTrue("El sexo de los jugadores es igual", false);
			e.printStackTrace();
		}
	}
	
	@Test
	public void testPuntos() {
		IJugador jugador1 = vestuario.getJugadorFemenino();
		IJugador jugador2 = vestuario.getJugadorFemenino();
		jugador1.setNombre("Chela");
		jugador2.setNombre("Nadal");

		IJugable partido= new Partido();
		
		try {
			partido.iniciarPartido(jugador1, jugador2);
			assertTrue("El sexo de los jugadores es igual", true);
			partido.sumarPunto(jugador1);
			assertEquals("15-0;0-0;0-0", partido.resultado());
			partido.sumarPunto(jugador1);
			assertEquals("30-0;0-0;0-0", partido.resultado());
			partido.sumarPunto(jugador2);
			
		
		} catch (TenisExepcion e) {
			assertTrue("El sexo de los jugadores es igual", false);
			e.printStackTrace();
		}
	}

	@Test
	public void testGame() {

		IJugador jugador1 = vestuario.getJugadorMasculino();
		IJugador jugador2 = vestuario.getJugadorMasculino();
		jugador1.setNombre("Chela");
		jugador2.setNombre("Nadal");
		
		IJugable partido = new Partido();
		
		try {
			partido.iniciarPartido(jugador1, jugador2);
			partido.setPuntos(60,40);
			partido.setGames(0,0);
			partido.setSets(0,0);
			partido.sumarPunto(jugador1);
			assertEquals("0-0;1-0;0-0", partido.resultado());
		} catch (TenisExepcion e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testSets() {

		IJugador jugador1 = vestuario.getJugadorFemenino();
		IJugador jugador2 = vestuario.getJugadorFemenino();
		jugador1.setNombre("Chela");
		jugador2.setNombre("Nadal");

		IJugable partido = new Partido();
		
		try {
			partido.iniciarPartido(jugador1, jugador2);
			partido.setPuntos(60,40);
			partido.setGames(5,3);
			partido.setSets(0,1);
			partido.sumarPunto(jugador1);
			assertEquals("0-0;0-0;1-1",partido.resultado());
		} catch (TenisExepcion e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testGanarPartidoMujer() {

		IJugador jugador1 = vestuario.getJugadorFemenino();
		IJugador jugador2 = vestuario.getJugadorFemenino();
		jugador1.setNombre("Carla");
		jugador2.setNombre("Romi");

		IJugable partido = new Partido();
		
		try {
			partido.iniciarPartido(jugador1, jugador2);
			partido.setPuntos(40,60);
			partido.setGames(3,5);
			partido.setSets(1,1);
			partido.sumarPunto(jugador2);
			assertEquals("Gana el partido una mujer","0-0;0-0;1-2",partido.resultado());
			
		} catch (TenisExepcion e) {
			e.printStackTrace();
		}
	}
	
	@Test
	public void testGanarPartidoHombre() {

		IJugador jugador1 = vestuario.getJugadorMasculino();
		IJugador jugador2 = vestuario.getJugadorMasculino();
		jugador1.setNombre("Luis");
		jugador2.setNombre("Carlos");

		IJugable partido = new Partido();
		
		try {
			partido.iniciarPartido(jugador1, jugador2);
			partido.setPuntos(40,60);
			partido.setGames(3,5);
			partido.setSets(1,1);
			partido.sumarPunto(jugador2);
			assertEquals("Gana partido hombre","0-0;0-0;1-2",partido.resultado());
			
		} catch (TenisExepcion e) {
			e.printStackTrace();
		}
	}
}